package cn.hnbjx.prepaid.common;

public enum BusinessStatus {
    /**
     * 请求成功
     */
    OK(0, "success"),

    /**
     * 未注册
     */
    NOT_REGISTER(400, "未注册"),
    /**
     * 未登录或已过期
     */
    NOT_LOGIN(401, "未登录或已过期"),

    /**
     * 未登录或已过期
     */
    NOT_MONEY(301, "剩余卡片不足"),

    /**
     * 已过期
     */
    NOT_TIME(308, "二维码已过期"),

    /**
     * 未登录或已过期
     */
    NOT_FLAG(601, "验证码错误"),

    /**
     * 管理员 - 账号密码错误
     */
    ADMIN_PASSWORD(402, "管理员账号密码错误"),

    /**
     * 缺少参数
     */
    REQUIRE_PARAM(403, "缺少参数"),

    /**
     * 无访问权限
     */
    NO_PERMISSION(404, "无访问权限"),

    /**
     * 内容存在敏感或非法内容
     */
    RISKY_CONTENT(405, "内容存在敏感或非法内容"),


    /**
     * 未知错误
     */
    UNKNOWN(500, "未知错误"),


    /**
     * 操作失败
     */
    FAIL(500, "操作失败"),

    /**
     * 操作失败
     */
    TICKET(303, "超过上限"),

    /**
     * 资源不存在
     */
    RESOURCE_NOT_EXISTS(501, "资源不存在"),

    /**
     * 资源已存在
     */
    RESOURCE_HAS_EXISTS(502, "资源已存在"),

    /**
     * 需要完善姓名
     */
    REQUIRE_NAME(503, "需要完善姓名");


    private Integer code;
    private String message;

    BusinessStatus(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    /**
     * 根据状态码查询错误信息
     *
     * @param code 状态码
     * @return message 错误信息
     */
    public static String getMessage(int code) {
        for (BusinessStatus status : values()) {
            if (status.getCode().equals(code)) {
                return status.getMessage();
            }
        }
        return null;
    }
}
